package main

import (
	"study/server/core"
	"study/server/global"
	"study/server/myflags"
	"study/server/router"
)

func main() {
	// 项目初始化流程（按依赖顺序执行）

	// 初始化日志系统（配置日志格式、输出方式、级别等）
	core.InitLogger()

	// 读取配置文件到全局变量（包含数据库、Redis、服务器端口等核心配置）
	global.Config = core.ReadConfig()

	// 初始化GORM数据库连接（根据配置文件中的数据库类型和参数建立连接池）
	global.DB = core.InitGorm()

	// 初始化Redis客户端（连接Redis服务并配置连接池参数）
	global.Redis = core.InitRedis()

	// 初始化命令行参数（解析启动时传入的自定义配置参数，如配置文件路径等）
	myflags.InitFlag()

	// 初始化Casbin权限控制（加载权限模型和策略数据，用于接口权限校验）
	global.Casbin = core.InitCasbin()

	// 运行web服务（后续需补充HTTP服务器启动逻辑，如路由注册、监听端口等）
	router.RunRouter()
}
